Parallel Episodic Processing (PEP) Model Version 3.1.0 MULTITHREADING NOTES The PEP model takes advantage of multiprocessor system capabilities by using multithreading. This aids in simulation times with modern computers with multiple cores. The number of threads can be set in the maxThreads variable in the Main method. This number shouldn't exceed the number of processors (or processors x 2 with hyper-threading processors like Intel i7), less at least one for other system processes. The simulation times for multiple threads do seem to be limited by memory bandwidth. Thus, gains from increasing the number of threads will tend to diminish with each added thread. From my experience, little is gained after 3 or 4 threads. SOURCE FILES Source files are formatted with tab-delimited columns of integers (0 to n-1). These columns, in order, represent: (1) correct response - which response node is correct (2) cues - multiple columns are possible if there is more than one cue per trial (3) targets - multiple columns also possible (3) distracters - muliple columns also possible (4) condition - multiple condition columns possible (congruency is automatically the first if congruency is manipulated) Note: If any of the above are not applicable (e.g., there are no cues or no distracters), then do not put a blank column. Simply use the columns as needed, but in the order as above. MAIN.JAVA VARIABLES To lesion the attentional wandering device see the "Attenional Wandering" section of Attention.java. To lesion temporal learning, see the monitorTemp() method in RunTime.java. For running previous simulations, see the instructions file of the corresponding version. To simulate other paradigms, the following variables can be adjusted in the "VARIABLES" section of Main.java. These are: ---Basic Experiment Information------------------------------------------------- source (String) - Filename where condition information is saved (these are included with the download) nSubjects (integer) - Number of "subjects" to run (default = 500) maxThreads (integer) - Number of concurrent threads to run (default = 5) resolution - Number of "milliseconds" per cycle ---Structure of Task------------------------------------------------------------ isReplace (boolean) - "true" = random with replacement, "false" = without nBlocks (integer array) - Number of blocks per subject, multiple sets possible nSamples (integer array) - Number of trials (only for random with replacement) twoSets (boolean) - "true" = two alternating sets of stimuli isPaired (boolean) - "true" = trial pairs in fixed sequence ---Stimulus Characteristics----------------------------------------------------- nTargets (integer) - Number of target stimuli (e.g., colours) multTarg (integer) - Number of targets per trial (normally 1) nDistracters (integer) - Number of distracter stimuli multDist (integer) - Number of distracters per trial (can be 0) nCues - Number of cue stimuli (can be 0) multCue - Number of cues per trial nDecisions - Number of decisions nGoals - Number of goals nResponses (integer) - Number of responses nConflicting (integer) - Number of distracters that can conflict (distracters above this limit are neutral) nPerVar (integer array) - Number of conditions (multiple variables possible) ---Stimulus Inputs (Only Useful for Degraded Stimuli)---------------------------- tBias, tSignal, dBias, & dSignal - fixed input variables (do not change) tDegrade - Sets input signal for degraded stimuli (default = .65) isDegrade - Determines whether stimuli are degraded ---Trial Timing Information------------------------------------------------------ tOnset, tOffset, dOnset, dOffset, cOnset, & cOffset (integers) - Stimulus onset and offset of the target (t), distracter (d), and cue (c) dMask (integer) - Distracter mask (e.g., by the target) trialLength - Number of cycles before "no response" is made (default = 2000), longer times appropriate for paradigms where target onset is delayed (e.g., prime-probe) or to match original study design isi (integer) - The number of blank cycles between trials (default = 500) ---Special Data Analyses--------------------------------------------------------- prevError (boolean) - "true" = Delete trials following errors isCheckSeq (boolean) - "true" = Check the congruency sequence effect isTrimmed (boolean) - "true" = Delete stimulus repetitions (only appropriate for CSE studies currently) isAllSeq (boolean) - "true" = Special analysis for investigating feature integration biases in the CSE isCueSwitch (boolean) - Special analysis for feature integration biases in cued task switching (set to "true" for all cued task switching analyses) onlySwitch (boolean) - "true" = simple switch cost only onlyCue (boolean) - "true" = only cue repetition vs. task repetition vs. switch onlyResponse (boolean) - "true" = only response repetition and switch factors andCong (boolean) - include task-rule congruency in test onlyCong (boolean) - only analyse congruency and switch factors ---Overtrained Prewired connections---------------------------------------------- targDec (integer multidimensional array) - Specifies links between target stimuli (0) and decisions (1) disDec (interger multidimensional array) - Between distracters (0) and decisions (1) knownRes (interger multidimensional array) - Between decision (0) and response (1) goalDec (interger multidimensional array) - Between goal (0) and decision (1) ---Instructions------------------------------------------------------------------ iCueGoal (interger multidimensional array) - Instructions of which cues (0) indicate which goals (1) iStimResponse (interger multidimensional array) - Between stimuli/decisions (0) and responses (1) iDecRes (interger multidimensional array) - Between decisions (0) and responses (1) --------------------------------------------------------------------------------- The values used for this simulation are included in the Main.java file in the. Note that most variables in the VARIABLES section can be ignored. Some of these are default parameters that shouldn't be changed. Others are for coding for unrelated effects in different paradigms or setting special randomization routines. Questions about any other parameters can be addressed to me via email at: james.schmidt@u-bourgogne.fr. RUNNING A SIMULATION After setting your variables in Main.java, you can run the main project. You should be using a software development kit (SDK), such as the Java Development Kit (JDK), and an integrated development environment (IDE), such as NetBeans. It is important that your source file is with your java class files so that the compiler can find the trials that it will present to the model. Running the project will cause the model to simulate all participants with a different random trial order. The model will also create a tab-delimited text file called Means.txt that will contain the mean response time and percentage error for each "participant" in each condition. This is created by DataAnalysis.java and can be run independently of the rest of the model. The model also produces a large Dataset.txt file with full datasets of all participants concatenated together. This class also codes for previous RT and previous accuracy. Note that any simulation results that you want to keep should be removed from your source folder before starting a new simulation run, as new datafiles will overwrite old ones.